/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package fr.miage.shopping.presentation;

import fr.miage.shopping.dao.traitements.CategorieDao;
import fr.miage.shopping.dao.traitements.ProduitDao;
import fr.miage.shopping.metier.entite.Categorie;
import fr.miage.shopping.metier.entite.Produit;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import java.util.List;


/**
 *
 * @author MACAJ
 */
public class ModificationProduit extends JFrame implements ActionListener{

    private JButton bOK=new JButton("OK");
    private JButton bAnnuler=new JButton("Annuler");
    private JLabel lNomProduit=new JLabel("Nom produit");
    private JLabel lDescProduit=new JLabel("Desctiption");
    private JLabel lPrix=new JLabel("Prix");
    private JLabel lStock=new JLabel("Stock physique");
    private JTextField tNomProduit=new JTextField(30);
    private JTextField tDescProduit=new JTextField("20");
    private JTextField tPrixProduit=new JTextField("10");
    private JTextField tStock=new JTextField("20");
    private JComboBox categories;
    private Produit produit;

     public ModificationProduit(Produit produit){
        super("Modification categorie");
        this.produit=produit;
        initFrame();
    }

    public void initFrame(){
    this.tNomProduit.setText(produit.getNomProd());
     Container pane = this.getContentPane();

        JPanel panelNorth=new JPanel();

        JPanel pNom=new JPanel();
        pNom.setLayout(new FlowLayout());
        pNom.add(lNomProduit);
        pNom.add(tNomProduit);
        panelNorth.add(pNom,BorderLayout.NORTH);

        JPanel pDesc=new JPanel();
        pDesc.setLayout(new FlowLayout());
        pDesc.add(lDescProduit);
        pDesc.add(tDescProduit);
        panelNorth.add(pDesc,BorderLayout.CENTER);

        JPanel pPrix =new JPanel();
        pPrix.setLayout(new FlowLayout());
        pPrix.add(lPrix);
        pPrix.add(tPrixProduit);
        panelNorth.add(pPrix,BorderLayout.SOUTH);

        pane.add(panelNorth,BorderLayout.NORTH);

        Vector<String> nom=getCategories();
        String nomPere;
         categories=new JComboBox(nom);
        if (produit.getCategorie()!=null) {
           nomPere=produit.getCategorie().getNomCate();
            categories.setSelectedItem(nomPere);
        }else{
             nomPere="";
        }

        JPanel panelCenter=new JPanel();

        JPanel pStock=new JPanel();
        pStock.setLayout(new FlowLayout());
        pStock.add(lStock);
        pStock.add(tStock);
        panelCenter.add(pStock,BorderLayout.NORTH);

        JPanel pCategorie=new JPanel();
        pCategorie.setLayout(new FlowLayout());
        pCategorie.add(categories);
        panelCenter.add(pCategorie,BorderLayout.CENTER);

        pane.add(panelCenter,BorderLayout.CENTER);

        JPanel panelSouth=new JPanel();
        
        panelSouth.setLayout(new FlowLayout());
        this.bOK.addActionListener(this);
        this.bOK.setActionCommand("ok");
        panelSouth.add(bOK);
        this.bAnnuler.addActionListener(this);
        this.bAnnuler.setActionCommand("annuler");
        panelSouth.add(bAnnuler);
        
        pane.add(panelSouth,BorderLayout.SOUTH);
        
        this.pack();
        this.setVisible(true);

    }

     public Vector<String> getCategories(){
        List<Categorie> list=CategorieDao.selectAllCategorieTrie();
        Vector<String> categoriesVector=new Vector<String>();
        categoriesVector.add("");
        for(int i = 0;i<list.size();i++){
            categoriesVector.add(list.get(i).getNomCate());
        }
        return categoriesVector;
    }


    public void actionPerformed(ActionEvent e) {
        if (e.getActionCommand().equalsIgnoreCase("annuler")) {
            this.setVisible(false);
            //afficher la fenetre mere
        }else{
          String nomProduit=this.tNomProduit.getText();
          String nomCatePere=(String)categories.getSelectedItem();
          Categorie c =new Categorie();
          c.setNomCate(nomCatePere);
          Categorie pere=CategorieDao.selectCategorieByNom(c);
          Produit p=new Produit();
          p.setIdProd(produit.getIdProd());
          p.setNomProd(nomProduit);
          p.setDescription(tDescProduit.getText());
          p.setPrix(Double.parseDouble(tPrixProduit.getText()));
          Integer stock=new Integer(tStock.getText());

          p.setStockPhysique(stock.intValue());
          p.setCategorie(pere);
          ProduitDao.insertProduit(p);
          this.setVisible(false);
        }
    }

}
